package org.fing.edu.uy.esbadp.modules.admAdaptation.mbean;

import java.sql.SQLException;
import java.util.List;

import org.fing.edu.uy.esbadp.core.AdpFlowTree;

public interface EsbAdaptativeAdminServicesMBean {

	/**
	 * 
	 * @param serviceID identificador unico del servicio virtual
	 * @return La ultima adaptacion registrada para el servicio , null en caso de que no exista.
	 * @throws SQLException 
	 */
	public AdpFlowTree getAdpFlowForService(Long serviceID) throws SQLException;
	
	
	/**
	 * 
	 * @param flowTree nueva adaptacion
	 * @param serviceID identificador del servicio al cual hace referencia la adaptacion.
	 * @throws SQLException 
	 */
	public void setAdpFlowForService(AdpFlowTree flowTree, Long serviceID ) throws SQLException;
	
	
	/**
	 * Retorna la lista de las adaptaciones procesadas y cacheadas en memoriara para obtener estadisticas.
	 * 
	 * @param serviceID identificador del servicio
	 * @return Lista de las ultimas adaptaciones procesadas
	 * @throws Exception 
	 */
	public List<AdpFlowTree> getHistoricFlowTreeForService(Long serviceID ) throws Exception;
	
	
	/**
	 * Limpia la lista de servicios registrados
	 * @param servicesID identificador del servicio
	 * @throws Exception
	 */
	public void clearHistoricFlowTreeForService(Long servicesID) throws Exception ;
}
